package it.univaq.mwt.model.bean;

import java.util.ArrayList;
import java.util.List;
import java.util.Set;

import it.univaq.mwt.exceptionmonitor.WishlistrMessage;
import it.univaq.mwt.model.entity.Users;
import javax.ejb.Remote;

@Remote
public interface UsersBeanRemote {

	int registerUser(Users user) throws WishlistrMessage; 
	void addUserStartup(Users user) throws WishlistrMessage;
	boolean isUser(Users user) throws WishlistrMessage;
	Users authentication(Users user) throws WishlistrMessage;
	boolean isAdmin(Users user) throws WishlistrMessage;
	void editUser(Users user) throws WishlistrMessage;
	void deleteUser(int id) throws WishlistrMessage;
	int getUserId(Users users) throws WishlistrMessage;
	ArrayList<Users> searchUser(String user) throws WishlistrMessage;
	List<Users> getList(int i, int limit) throws WishlistrMessage;
	int getRegisteredNumber() throws WishlistrMessage;
	Users getUser(int id) throws WishlistrMessage;
	void setEditUser(int id, Users u) throws WishlistrMessage;
	void deleteFriendUser(int id_user, int id_friend) throws WishlistrMessage;
	void setFriendUser(int id_user, int id_friend) throws WishlistrMessage;
	Set<Users> getListUserFriend(int id_user) throws WishlistrMessage;
	void editUserProfile(Users user) throws WishlistrMessage;
	
}